package com.reactim.message.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

/**
 * 缓存配置类
 * 从application.yml中读取缓存相关配置
 */
@Configuration
@ConfigurationProperties(prefix = "reactim.connection.cache")
@Data
public class CacheConfig {
    
    /**
     * 是否启用本地缓存
     */
    private boolean enabled = true;
    
    /**
     * 连接信息缓存最大容量
     */
    private int connectionCacheMaxSize = 10000;
    
    /**
     * 连接信息缓存过期时间（秒）
     */
    private int connectionCacheExpireSeconds = 300;
    
    /**
     * 在线状态缓存最大容量
     */
    private int onlineStatusCacheMaxSize = 20000;
    
    /**
     * 在线状态缓存过期时间（秒）
     */
    private int onlineStatusCacheExpireSeconds = 60;
    
    /**
     * 统计信息缓存过期时间（秒）
     */
    private int statsCacheExpireSeconds = 30;
    
    /**
     * 是否启用缓存预热
     */
    private boolean enablePreloading = true;
    
    /**
     * 缓存预热批次大小
     */
    private int preloadingBatchSize = 1000;
}